#ifndef YATZEE_H
#define YATZEE_H

#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#endif

//Function
int YatzeeEvaluate (std::vector<int> &RolledStorage, int CurrentDieRolls);
bool GameRoll (std::vector<int> &Results);
bool MainGameInterface ();
void PrintRoll (const std::vector<int> &ResultsToPrint, int Strategy);
int Score (const std::vector<int> &GameRollResults);

//Constants
const int InitialDieToCount = 5;
const size_t DieSides = 6;
const int MaxRollsPerTurn = 3;
enum TurnStrategy
{
    ONES = 1,
    TWOS,
    THREES,
    FOURS,
    FIVES,
    SIXS,
    TKIND,
    FKIND,
    CHANCE,
    FHOUSE = 35,
    STRAIGHT = 30,
    LSTRAIGHT = 40,
    YATZEE = 50
};


//Inlines
inline size_t MaxDieRolled (std::vector<int> RollHolder, int MaxValue)
    {

    for (size_t i = RollHolder.front(); i < RollHolder.size(); i ++)
            {
            if (RollHolder[i] == MaxValue)
                return  i;
            }

    return 0;
    }
#endif
